In association with recent development in the computer technology, there has increased an opportunity to accumulate electronic data such as a document prepared with characters, numerals, and strings of symbols in a database, or to transfer the data via a network. Considering these facts, how to avoid forgery of electronic data accumulated in a database or forgery of data during data communications has become a serious problem.
For solving the problem, there has been known an authentication technology in which an authenticator created by applying a one-way function to electronic data is appended thereto when the electronic data is transmitted and whether transmitted data is forged or not is verified using this authenticator when the electronic data is received.
More specifically, a station which transmits the electronic data (signing station) divides the electronic data into specified blocks, subjects the data to a signature processing by applying a one-way function such as a hash function to each of the divided data blocks, and transmits the data obtained through the processing to a distant station (certifying station). While a station which receives the electronic data creates an authenticator by applying a one-way function to a portion of the data other than the authenticator in the received electronic data, compares the created authenticator with the authenticator included in the electronic data, and verifies whether the electronic data has been forged or not.
However, even if the conventional technology described above is used, forgery of or tampering of electronic data can not possibly be verified if the portion of the authenticator itself is forged, namely if the signature is forged. Therefore, prevention of forgery of the signature becomes an issue that need to be resolved.
When a hash function is used, for example, it is possible to make more difficult to forgery of electronic data by making longer a processed block length of the hash function. However, it is not realistic to make the processed block length of the hash function extraordinarily long.
Especially, a conventional type of hash function is formed not based on an organized structural method but based on, in many cases, an empirical or an intuitive method obtained by combining a logical operation such as AND and OR with four rule of arithmetic in a complex manner. Therefore, enormous man power is required for experiments or the like when the block length of the hash function is to be increased.